package com.btpj.jetpack.ext

import java.lang.reflect.ParameterizedType

/**
 * 获取当前类绑定的泛型ViewModel
 *
 * @param obj 绑定ViewModel泛型的类
 * @return VM 当前类所绑定的泛型
 */
@Suppress("UNCHECKED_CAST")
fun <VM> getViewModelClazz(obj: Any): VM {
    return (obj.javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as VM
}

/**
 * 获取当前类绑定的泛型ViewModel
 *
 * @param obj 绑定ViewModel泛型的类
 * @return VM 当前类所绑定的泛型
 */
@Suppress("UNCHECKED_CAST")
fun <VM> getListViewModelClazz(obj: Any): VM {
    return (obj.javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[1] as VM
}